<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="zh" xml:lang="zh" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Task Descriptor: 实现开发人员测试</title>
<meta name="uma.type" content="TaskDescriptor">
<meta name="uma.name" content="implement_developer_test">
<meta name="uma.presentationName" content="实现开发人员测试">
<meta name="uma.guid" content="_H1X24UofEdqrjq4i3fchvA">
<meta name="element_type" content="TaskDescriptor">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../css/default.css" type="text/css">
<script src="./../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ActivityTreeTable.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ProcessElementPage.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/processElementData.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var defaultQueryStr = '?proc={F2AD342D-0F3B-4E19-A351-75ECDCB806F5}&path={F2AD342D-0F3B-4E19-A351-75ECDCB806F5},{4DC6F53E-1FE1-44EE-812B-003D3BD1ACEA},_H1X24UofEdqrjq4i3fchvA';
					var backPath = './../../';
					var imgPath = './../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo, defaultQueryStr, true, true, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top">
<div id="page-guid" value="_H1X24UofEdqrjq4i3fchvA"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">Task Descriptor: 实现开发人员测试</td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../images/taskdes_lg_dgm32.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">此任务描述了在对组件执行更正式的测试之前，如何创建用于验证组件是否正常工作的一组测试。</td>
</tr>
<tr>
<td>Based on Method Task: <a href="./../../rup/tasks/implement_developer_test_66FE6BEE.html" guid="{862F3EC5-70C3-4D9C-BF0E-EF93AE1BF936}">实现开发人员测试</a></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Roles</th><td class="sectionTableCell" width="30%"><span class="sectionTableCellHeading">Main:
								</span>
<ul>
<li>
<a href="./../../rup/capabilitypatterns/rup_implementer_F0B4A62.html" guid="_CRsnoRi2Edq_uI8xTPML6g">实现者</a>
</li>
</ul>
</td><td class="sectionTableCell" width="30%"><span class="sectionTableCellHeading">Additional:
								</span></td><td class="sectionTableCell"><span class="sectionTableCellHeading">Assisting:
								</span></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row">Inputs</th><td class="sectionTableCell" width="30%"><span class="sectionTableCellHeading">Mandatory:
								</span>
<ul>
<li>
<a href="./../../rup/capabilitypatterns/rup_implementation_element_FDA45E78.html" guid="_CRsnohi2Edq_uI8xTPML6g">实现元素</a>
</li>
</ul>
</td><td class="sectionTableCell" width="30%"><span class="sectionTableCellHeading">Optional:
								</span>
<ul>
<li>
<a href="./../../rup/capabilitypatterns/rup_stub_8B235595.html" guid="_CRyuShi2Edq_uI8xTPML6g">测试桩模块</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_test_component_CD5A7F50.html" guid="_CRyuRBi2Edq_uI8xTPML6g">可测性元素</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_design_model_13667D41.html" guid="_CRyuQRi2Edq_uI8xTPML6g">设计模型</a>
</li>
</ul>
</td><td class="sectionTableCell"><span class="sectionTableCellHeading">External:
								</span>
<ul>
<li>None</li>
</ul>
</td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row">Outputs</th><td class="sectionTableCell" colspan="3">
<ul>
<li>
<a href="./../../rup/capabilitypatterns/rup_developer_test_567E438E.html" guid="_CRyuTBi2Edq_uI8xTPML6g">开发人员测试</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Steps</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="sectionTableCell">
<div class="stepHeading"> 优化范围和确定测试</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="Refine_the_Scope_and_Identify_the_Tests" name="Refine_the_Scope_and_Identify_the_Tests"></a>
<div align="left">
    <table border="1" summary="布局表" width="100%" cellspacing="0" cellpadding="4" style="border: 1px solid rgb(128,128,128)"     bordercolorlight="#808080" bordercolordark="#808080">
        <tr>
            <th width="5%">
                目的：
            </th>
            <td width="95%">
                确定被测试组件并定义一组在当前迭代中最有益的测试
            </td>
        </tr>
    </table><br />
</div>
<p>
    在正式环境中，需要开发的组件和测试在测试设计工件中指定，这使此步骤变为可选的。 还有其他情况，在这些情况下开发人员测试是由以下因素驱动的：变更请求、错误修正、需要验证的实现决策和只将设计模型作为输入的子系统测试。对于这些情况中的每一个：
</p>
<ul>
    <li>
        定义目标：子系统／组件接口验证、实现验证，重现缺陷
    </li>
    <li>
        定义范围：子系统、组件、组件组
    </li>
    <li>
        定义测试类型和详细信息：黑匣、白匣、前置条件、后置条件、不变量、输入／输出和执行条件、观测／控制点、清除操作
    </li>
    <li>
        确定什么是测试的生命周期范围；例如，特别为修正缺陷而建立的测试可能是废弃型的测试，而使用外部接口的测试将与被测试的组件具有相同的生命周期
    </li>
</ul></td>
</tr>
</table>
</div>
<div class="stepHeading"> 选择合适的实现技术</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="Select_Appropriate_Implementation_Technique" name="Select_Appropriate_Implementation_Technique"></a>
<div align="left">
    <table border="1" width="100%" cellspacing="0" cellpadding="4" style="border: 1px solid rgb(128,128,128)"     bordercolor="#808080" bordercolorlight="#808080" bordercolordark="#808080">
        <tr>
            <th width="5%">
                目的：
            </th>
            <td width="95%">
                确定合适的技术来实现测试
            </td>
        </tr>
    </table><br />
</div>
<p>
    存在各种技术可用于实现测试，但可按照两个常规类别来考虑它们：手动测试和自动测试。大多数开发人员测试是使用自动测试技术实现的：
</p>
<ul>
    <li>
        已编程的测试，使用与被测试组件相同的软件编程技术和环境，或使用简单些的编程语言和工具（如，脚本语言：tcl、基于 shell 等等）。
    </li>
    <li>
        已记录或捕获的测试，通过使用测试自动化工具构造，这些工具捕获被测试组件与系统其余部分的交互并生成基本测试
    </li>
    <li>
        已生成的测试：测试的某些方面（过程或是测试数据）可使用更复杂的测试自动化工具自动生成
    </li>
</ul>虽然最常用的方法是“已编程的测试”，例如在某些情况下是 GUI 相关测试，但进行测试的最高效的方法是按照以文本描述形式捕获的一系列指示信息手动进行。</td>
</tr>
</table>
</div>
<div class="stepHeading"> 实现测试</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="Implement_the_Test" name="Implement_the_Test"></a>
<div align="left">
    <table border="1" width="100%" cellspacing="0" cellpadding="4" style="border: 1px solid rgb(128,128,128)"     bordercolorlight="#808080" bordercolordark="#808080">
        <tr>
            <th width="5%">
                目的：
            </th>
            <td width="95%">
                实现在定义步骤或任务中确定的测试
            </td>
        </tr>
    </table><br />
</div>
<p>
    实现在第一步中定义的所有元素。详述并明确指定测试环境前置条件以及使被测试组件处于可执行测试的状态的步骤。 确定要遵循的清除步骤，以便将环境恢复到初始状态。特别注意观测／控制点的实现，因为这些方面可能需要必须在被测试组件中实现的特殊支持。
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> 建立外部数据集</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="Establish_External_Data_Sets" name="Establish_External_Data_Sets"></a>
<div align="left">
    <table border="1" width="100%" cellspacing="0" cellpadding="4" style="border: 1px solid rgb(128,128,128)"     bordercolorlight="#808080" bordercolordark="#808080">
        <tr>
            <th width="5%">
                目的：
            </th>
            <td width="95%">
                创建和维护存储在测试外部并由测试在执行期间使用的数据
            </td>
        </tr>
    </table><br />
</div>
<p>
    在大多数情况下，将测试数据从测试中分离出来会使解决方案更可维护。如果测试的生命周期范围很短，对测试内的数据进行硬编码会更高效，但如果需要在多个测试执行周期中使用不同的数据集，那么最简单的方法是将数据集存储在外部。
    如果将测试数据从测试中分离出来，还有一些其他好处：
</p>
<ul>
    <li>
        多个测试可使用同一个数据集
    </li>
    <li>
        易于修改和／或增加
    </li>
    <li>
        可用于控制测试内的条件转移逻辑
    </li>
</ul></td>
</tr>
</table>
</div>
<div class="stepHeading"> 验证测试实现</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="Verify_the_Test_Implementation" name="Verify_the_Test_Implementation"></a>
<div align="left">
    <table border="1" width="100%" cellspacing="0" cellpadding="4" style="border: 1px solid rgb(128,128,128)"     bordercolorlight="#808080" bordercolordark="#808080">
        <tr>
            <th width="5%">
                目的：
            </th>
            <td width="95%">
                验证测试工作方式正确
            </td>
        </tr>
    </table><br />
</div>
<p>
    测试该测试。检查环境设置和清除指令。运行测试，观察行为并修正测试缺陷。如果测试是长期的，则让具有较少内部知识的人员来运行测试，并检查是否存在足够的支持信息。与开发团队中的其他人和其他相关各方一起评审测试。
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> 维护可跟踪性关系</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="Maintain_Traceability_Relationships" name="Maintain_Traceability_Relationships"></a>
<div align="left">
    <table border="1" width="100%" cellspacing="0" cellpadding="4" style="border: 1px solid rgb(128,128,128)"     bordercolorlight="#808080" bordercolordark="#808080">
        <tr>
            <th width="5%">
                目的：
            </th>
            <td width="95%">
                允许在被跟踪项上执行影响分析和评估报告
            </td>
        </tr>
    </table><br />
</div>
<p>
    根据正式程度，可能需要也可能不需要维护可跟踪性关系。如果需要，使用测试计划中概述的可跟踪性需求来按要求更新可跟踪性关系。
</p><br /></td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Properties</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Multiple Occurrences" abbr="Multiple Occurrences">Multiple Occurrences</th><td class="sectionTableCell" align="left" headers="property_Multiple Occurrences"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Event Driven" abbr="Event Driven">Event Driven</th><td class="sectionTableCell" align="left" headers="property_Event Driven"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Ongoing" abbr="Ongoing">Ongoing</th><td class="sectionTableCell" align="left" headers="property_Ongoing"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Optional" abbr="Optional">Optional</th><td class="sectionTableCell" align="left" headers="property_Optional"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Planned" abbr="Planned">Planned</th><td class="sectionTableCell" align="left" headers="property_Planned"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Repeatable" abbr="Repeatable">Repeatable</th><td class="sectionTableCell" align="left" headers="property_Repeatable"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright">Copyright &copy; 2008 版权所有 东软集团股份有限公司&nbsp; 联系邮箱:<a href="mailto:tcoe@neusoft.com">tcoe@neusoft.com</a></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script language="JavaScript" type="text/javascript">
					contentPage.onload();
					contentPage.processPage.fixDescriptorLinks();
				</script>
</html>
